package com.qkst.website.common.utils;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import org.apache.log4j.Logger;

/**
 * @description : MD5常用工具类
 * @Author : lihao
 * @Verion : 1.0v
 * @Email : ahlxlihao@163.com
 * @date 2017-02-22
 */
public class MD5Utils {
	
	private static final Logger LOG = Logger.getLogger(MD5Utils.class);
	
    /**
     * MD5加密
     * @param String str
     * @return String
     */
    public static String getMD5Str(String str) {
    	final String METHOD="getMD5Str";
         MessageDigest messageDigest = null;
         try {
            messageDigest = MessageDigest.getInstance("MD5");
            messageDigest.reset();
            messageDigest.update(str.getBytes("UTF-8"));
         } catch (NoSuchAlgorithmException e) {
        	 LOG.info(METHOD+" NoSuchAlgorithmException caught!");
             System.exit(-1);
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         }
         byte[] byteArray = messageDigest.digest();
         StringBuffer md5StrBuff = new StringBuffer();
         for (int i = 0; i < byteArray.length; i++) {
             if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
                 md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
                 else
                    md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
         }
         LOG.info(METHOD+" >> "+md5StrBuff.toString());
         return md5StrBuff.toString();
    }
    
}
